<html>
<head><meta charset="utf-8"><title>http registry RFC · t-cargo · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/index.html">t-cargo</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html">http registry RFC</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="217751141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217751141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217751141">(Nov 24 2020 at 13:13)</a>:</h4>
<p>hey cargo team :)</p>



<a name="217751170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217751170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217751170">(Nov 24 2020 at 13:13)</a>:</h4>
<p>I think it might be useful to have some discussion between <a href="http://crates.io">crates.io</a> and cargo on <a href="https://github.com/rust-lang/rfcs/pull/2789">https://github.com/rust-lang/rfcs/pull/2789</a></p>



<a name="217751253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217751253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217751253">(Nov 24 2020 at 13:14)</a>:</h4>
<p>at least I personally have some opinions on it, but unfortunately I don't really have a ton of time to followup on the RFC</p>



<a name="217751922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217751922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217751922">(Nov 24 2020 at 13:20)</a>:</h4>
<p><span class="user-mention" data-user-id="120179">@Eh2406</span> ^</p>



<a name="217757455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217757455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217757455">(Nov 24 2020 at 14:05)</a>:</h4>
<p><span class="user-mention" data-user-id="121055">@Pietro Albini</span> I have felt like I don't need to have opinions as there was no progress, now that people are working it is time to figure out what I think. How do you want to have that conversation?</p>



<a name="217757687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217757687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217757687">(Nov 24 2020 at 14:06)</a>:</h4>
<p>hmm, dunno, I'm open to ideas</p>



<a name="217759580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217759580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217759580">(Nov 24 2020 at 14:20)</a>:</h4>
<p>Chat here is convenient for me. But the <a href="http://crates.io">crates.io</a> discord could work. The Cargo has a synchronous meeting every week, if <a href="http://crates.io">crates.io</a> wants to join us. Or we can have a sehduale chat. Or what did you have in mind.</p>



<a name="217773429"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217773429" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217773429">(Nov 24 2020 at 16:00)</a>:</h4>
<p>Personally I feel that we should get a good idea of performance within Cargo first. I think there's a lot of other concerns about caching/CDN/best file structure/etc, but if we can't get the performance right ignoring those things they're all sort of moot anyway</p>



<a name="217775867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217775867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217775867">(Nov 24 2020 at 16:14)</a>:</h4>
<p>That is very fair. I also think that a year ago I said <a href="https://github.com/rust-lang/rfcs/pull/2789#issuecomment-556526112">"my sense is that the tipping point is far off."</a>, I think I felt it was 3-5 years off. Which would make "in the next year" a good timeline for figuring out what could be viable, so that the year after we could start figuring out what to stabilize.</p>



<a name="217927414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217927414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217927414">(Nov 25 2020 at 19:18)</a>:</h4>
<p><span class="user-mention" data-user-id="120179">@Eh2406</span> hmm, where do the cargo meeting happens?</p>



<a name="217927422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217927422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217927422">(Nov 25 2020 at 19:18)</a>:</h4>
<p>(and when)</p>



<a name="217927547"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217927547" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217927547">(Nov 25 2020 at 19:19)</a>:</h4>
<p>Usually it happens on <a href="https://meet.jit.si/">https://meet.jit.si/</a> wednesdays at 4pm est. But it got cancelled this week.</p>



<a name="217927686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217927686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217927686">(Nov 25 2020 at 19:20)</a>:</h4>
<p>yeah I figured with thanksgiving :)</p>



<a name="217927704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217927704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217927704">(Nov 25 2020 at 19:20)</a>:</h4>
<p>I'd love to join when you discuss this RFC</p>



<a name="217949542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217949542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217949542">(Nov 25 2020 at 23:07)</a>:</h4>
<p><span class="user-mention" data-user-id="121055">@Pietro Albini</span> We're talking about moving the meeting to Tuesday, and in the process, moving it an hour earlier. That might be more convenient for you, given time zones.</p>



<a name="217949591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217949591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217949591">(Nov 25 2020 at 23:08)</a>:</h4>
<p><span class="user-mention" data-user-id="121055">@Pietro Albini</span> Would <time datetime="2020-12-01T20:00:00Z">2020-12-01T12:00:00-08:00</time> work for you?</p>



<a name="217949608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/217949608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#217949608">(Nov 25 2020 at 23:08)</a>:</h4>
<p>yep!</p>



<a name="218126298"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218126298" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218126298">(Nov 27 2020 at 20:16)</a>:</h4>
<p>Hey folks! <span class="user-mention" data-user-id="120179">@Eh2406</span> just pointed me at this thread. I'm the person who's been pushing forward on the RFC. I'd be happy to join an eventual call if that'd be helpful :)</p>



<a name="218423755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218423755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218423755">(Dec 01 2020 at 13:50)</a>:</h4>
<p>what is the link for tonight's call?</p>



<a name="218435193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218435193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eric Huss <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218435193">(Dec 01 2020 at 15:18)</a>:</h4>
<p>Sent PM</p>



<a name="218481042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481042">(Dec 01 2020 at 21:01)</a>:</h4>
<p>One thought I ran out of time to add, but to me the purpose of the RFC is to identify and list constraints of the design, and then given those constraints propose the easiest thing to do</p>



<a name="218481145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481145">(Dec 01 2020 at 21:02)</a>:</h4>
<p>to me it should be obvious that either the current file-per-crate or pietro's content-addressable design satisfy all our constraints or clearly doesn't</p>



<a name="218481184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481184">(Dec 01 2020 at 21:02)</a>:</h4>
<p>in that the only case we should be debating about the implementation is if they both clearly and obviously satisfy all our constraints</p>



<a name="218481255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481255">(Dec 01 2020 at 21:03)</a>:</h4>
<p>sorry I feel like I keep going all meta about these two designs rather than the specifics...</p>



<a name="218481270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481270">(Dec 01 2020 at 21:03)</a>:</h4>
<p>thanks everyone for the chat btw!</p>



<a name="218481280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481280">(Dec 01 2020 at 21:03)</a>:</h4>
<p>I agree that that should be a part of it. I think some constraints worth considering are:</p>
<ul>
<li>Should it be possible to serve the index with a static file server.</li>
<li>Is it acceptable to have any work proportional to the index size?</li>
<li>Should the HTTP API work if it is just an HTTP proxy to the git repository?</li>
</ul>



<a name="218481437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481437">(Dec 01 2020 at 21:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> No, I think that's a good instinct. We want to make sure we make decisions here based on what is "important", not just "we may want these things". And constraints are a good way to illustrate that.</p>



<a name="218481539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481539">(Dec 01 2020 at 21:05)</a>:</h4>
<p>Ah yes those are excellent questions :)</p>



<a name="218481864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481864">(Dec 01 2020 at 21:08)</a>:</h4>
<p>And at least from my perspective, the whole motivation for this rfc is that the current index isn't scalable to infinity, so the that's the guiding light to fix that. In that sense I would only want to take on a static file server as a secondary constraint so long as it doesn't conflict, nothing should be proportional (or should only be proportional by the year 2200 when it's not my problem), and like the static file server proxying to the git repo should only be done if it doesn't conflict with the primary constraint of scalability</p>



<a name="218481902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218481902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218481902">(Dec 01 2020 at 21:08)</a>:</h4>
<p>although if those constraints don't conflict with scalability that's when my thoughts run out, and I'd defer to others and the RFC thread</p>



<a name="218482378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218482378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218482378">(Dec 01 2020 at 21:12)</a>:</h4>
<p>The thought I ran out of time on is that the <code>snapshot</code> file can be a dynamic BTree:<br>
A row can be a leaf consisting of  <code>crate name: file hash</code><br>
Or a sub snapshot <code>crate name prefix*: file location - file hash</code><br>
Then we can start with a flat file and when scaling starts to break down, transition to a tree.</p>



<a name="218482458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218482458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218482458">(Dec 01 2020 at 21:13)</a>:</h4>
<p>yeah this is where having a flat list of all crates/hashes is not clear to me violates the "this can't scale infinitely" constraint</p>



<a name="218482562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218482562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218482562">(Dec 01 2020 at 21:14)</a>:</h4>
<p>we could perhaps get "super clever" about our fetching and such to shard the tree and do btree-like things. Without gaming it out though it could also risk incremental updates being slower (more round trips), or something like that though</p>



<a name="218482702"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218482702" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218482702">(Dec 01 2020 at 21:15)</a>:</h4>
<p>That is what I like about letting the registry decide how much to split, different registries can use it to different degrees as there needs change.</p>



<a name="218485798"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218485798" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218485798">(Dec 01 2020 at 21:40)</a>:</h4>
<p>Is someone up for trying to summarize this discussion onto the RFC thread?</p>



<a name="218486675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218486675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218486675">(Dec 01 2020 at 21:47)</a>:</h4>
<p><a href="http://www.modulecounts.com/">http://www.modulecounts.com/</a> may help with getting a sense of how fast things are growing.</p>



<a name="218486862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218486862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218486862">(Dec 01 2020 at 21:49)</a>:</h4>
<p>npm is off the chart, wow <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="218486898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218486898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218486898">(Dec 01 2020 at 21:49)</a>:</h4>
<p>nice link, thanks :)</p>



<a name="218487435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218487435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218487435">(Dec 01 2020 at 21:54)</a>:</h4>
<p>I'll add that one option here is to remove the changelog part of the RFC, and _just_ talk about HTTP access to the registry. And then we could add the snapshot mechanism (or something like it) later on. From what I'm seeing so far, even without the changelog, the HTTP-backed API is generally a win. The except I suspect will be when you just run a <code>cargo update</code> (and that's where changelog/snapshot would help the most).</p>



<a name="218488146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218488146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218488146">(Dec 01 2020 at 22:00)</a>:</h4>
<p>I think being able to support HTTP as a _straight_ replacement for git is already hugely valuable. And then the snapshotting mechanism can be its own effort, which will involve changes in both the git and http based registries.</p>



<a name="218488517"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218488517" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218488517">(Dec 01 2020 at 22:02)</a>:</h4>
<p>I like that idea. The changelog is the most complicated part of the implementation. The question is, is there some way to make it forward compatible with the caching fix, and signing the contents?</p>



<a name="218488951"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218488951" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218488951">(Dec 01 2020 at 22:07)</a>:</h4>
<p>If we're <em>just</em> having the git repo available over http, one question I'd have is how caching would work. Would headers say that all files are cached for an hour or so? Or would we issue an invalidation for each individual crate? (and if individual validations is that feasible billing-wise with cloudfront?)</p>



<a name="218489041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218489041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218489041">(Dec 01 2020 at 22:08)</a>:</h4>
<p>I would also consider it toally fine at the very least for a first pass if <code>cargo update</code> has a runtime porportional to downloading all crates referenced because presumably not too too many crates are referenced anyway (and as mentioned <code>cargo update</code> is a relatively rare operation)</p>



<a name="218489772"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218489772" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218489772">(Dec 01 2020 at 22:13)</a>:</h4>
<p><a href="https://aws.amazon.com/about-aws/whats-new/2010/08/31/cloudfront-adds-invalidation-feature/">$0.005 charge for invalidating each file</a> * <a href="https://github.com/rust-lang/crates.io-index/graphs/commit-activity">2644 commits to the index per week</a> = 13.22 US$ per week.</p>



<a name="218491212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218491212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218491212">(Dec 01 2020 at 22:26)</a>:</h4>
<p>(Cloudfront does not care whether you invalidate one file or all pricing wise FWIW)</p>



<a name="218491232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218491232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218491232">(Dec 01 2020 at 22:26)</a>:</h4>
<p>you charge for "path" which can be "/*"</p>



<a name="218492422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218492422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218492422">(Dec 01 2020 at 22:39)</a>:</h4>
<p>BTW assuming exponential growth the number of crates (not vertions) appears to be doubling every 1.5 years.</p>



<a name="218496342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218496342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218496342">(Dec 01 2020 at 23:21)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> fwiw, my benchmarks (coming soon to a GitHub issue near you) will include both the non-changelog and changelog numbers for a number of different operations :)</p>



<a name="218496508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218496508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218496508">(Dec 01 2020 at 23:23)</a>:</h4>
<p>Nice!</p>



<a name="218613305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218613305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218613305">(Dec 02 2020 at 20:19)</a>:</h4>
<p>I promised benchmarks: <a href="https://github.com/rust-lang/cargo/pull/8890#issuecomment-737472043">https://github.com/rust-lang/cargo/pull/8890#issuecomment-737472043</a></p>



<a name="218614226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218614226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218614226">(Dec 02 2020 at 20:25)</a>:</h4>
<p>man this is beautiful, only halfway through reading but <span class="user-mention" data-user-id="120054">@Jon Gjengset</span> just wanna say I'm very impressed</p>



<a name="218614476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218614476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218614476">(Dec 02 2020 at 20:27)</a>:</h4>
<p>some quick questions</p>



<a name="218614487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218614487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218614487">(Dec 02 2020 at 20:27)</a>:</h4>
<p>is git throttled at all?</p>



<a name="218614511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218614511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218614511">(Dec 02 2020 at 20:27)</a>:</h4>
<p>http == "let's pretend the git repo is a http static file server, no changelog" right?</p>



<a name="218614830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218614830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218614830">(Dec 02 2020 at 20:29)</a>:</h4>
<p>Yes, git is throttled through the same mechanism as the http registry. Essentially, git == git over http, just like for GitHub. http = static file server in front of git checkout, http-changelog = http + treat the 404 for /changelog as a response that indicates that the changelog has no changes.</p>



<a name="218614925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218614925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218614925">(Dec 02 2020 at 20:30)</a>:</h4>
<p>I guess my background in research comes in handy when trying to present benchmark results :p</p>



<a name="218615228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218615228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218615228">(Dec 02 2020 at 20:32)</a>:</h4>
<p>there are so many dimensions to theses graphs lol</p>



<a name="218615371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218615371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218615371">(Dec 02 2020 at 20:33)</a>:</h4>
<p>Oh, yeah, I love ggplot for multi-faceted plotting like this. Makes it easy to showcase a number of interrelated variables. It's a little daunting at times, but it does tend to expose trends that are otherwise hard to see in separated plots.</p>



<a name="218615641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218615641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218615641">(Dec 02 2020 at 20:35)</a>:</h4>
<p>"this suggests that the dependency graphs are not very, and we" -- missing word after "very" ?</p>



<a name="218616594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218616594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218616594">(Dec 02 2020 at 20:42)</a>:</h4>
<p>I'm trying to understand why "cargo update" is so much faster with a changelog than with http, is that because with the changelog you get one http request 404 and do nothing else b/c you assume your local copy is up-to-date? And with http we have to issue N http requests that all get 204'd (or w/e the "not changed" status code is)</p>



<a name="218617276"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218617276" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218617276">(Dec 02 2020 at 20:47)</a>:</h4>
<p>I'm also surprised (like you mentioned at the end) of the dark green "rerun-locked" bar on any strategy taking any amount of time at all. Running a build after you previously ran one should always be instantaneous (no network touching at all)</p>



<a name="218621838"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218621838" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218621838">(Dec 02 2020 at 21:24)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116015">Alex Crichton</span> <a href="#narrow/stream/246057-t-cargo/topic/http.20registry.20RFC/near/218615641">said</a>:</p>
<blockquote>
<p>"this suggests that the dependency graphs are not very, and we" -- missing word after "very" ?</p>
</blockquote>
<p>Ah, "deep". Edited.</p>



<a name="218621961"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218621961" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218621961">(Dec 02 2020 at 21:25)</a>:</h4>
<p>Re <code>cargo update</code>, yes, exactly. Without a changelog, we have to issue a request for each index file, which will generally return <code>304 Not Modified</code>, whereas with the changelog we _just_ fetch the changelog, and it tells us that we don't need to re-download any other files.</p>



<a name="218622076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218622076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218622076">(Dec 02 2020 at 21:26)</a>:</h4>
<p>Re the dark green, I think what's happening is that _either_ there is a bug in my implementation, or the prefetching does a bunch of work to _realize_ that it doesn't need to fetch anything (which is arguably also a bug). In either case, I think that should be fixable, and am looking at that next.</p>



<a name="218644715"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218644715" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218644715">(Dec 03 2020 at 01:43)</a>:</h4>
<p>"fun" data point: <a href="https://github.com/rust-lang/cargo/pull/8890#issuecomment-737603098">https://github.com/rust-lang/cargo/pull/8890#issuecomment-737603098</a></p>



<a name="218647911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218647911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218647911">(Dec 03 2020 at 02:43)</a>:</h4>
<p><span class="user-mention" data-user-id="120054">@Jon Gjengset</span> I have been using <code>serde = 1</code> for experiments with <code>pubgrub</code> so I am not surprised to hear that story. We can probably make <code>serde</code> numbers look better by not including optional dependencies (in this case <code>clippy</code>), but other cases will end up worse. Correctly handling <code>features</code> will take some work, and is probably out of scope for this PR. But is a good thing to add to the list of follow up PRs.</p>



<a name="218727594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218727594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218727594">(Dec 03 2020 at 17:32)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> Following up on <a href="https://github.com/rust-lang/cargo/pull/8890#issuecomment-738092076">https://github.com/rust-lang/cargo/pull/8890#issuecomment-738092076</a>, that would be super handy! I could run benchmarks against it pretty much immediately and it'd give some valuable real world data.</p>



<a name="218727864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218727864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218727864">(Dec 03 2020 at 17:34)</a>:</h4>
<p>OK, great -- just a copy of the files in the crates.io-index I guess?</p>



<a name="218728453"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218728453" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218728453">(Dec 03 2020 at 17:39)</a>:</h4>
<p>Yup, that should do it.</p>



<a name="218730438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218730438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218730438">(Dec 03 2020 at 17:54)</a>:</h4>
<p>Re http without changelog and forward compatibility with content addressing.</p>
<p>If a <code>sparse+</code> does not have a hashfile then we use the locations in the current implementation, If the <code>hash</code>s file(s) are present then we use a content addressing scheme. If we remove the changelog  then this POC-PR is just implementing the first half. And it supports "HTTP proxy to the git repository" as long as you do not need the cache busting or signing. (witch I think a lot of small registries will not need.)</p>



<a name="218730733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218730733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218730733">(Dec 03 2020 at 17:56)</a>:</h4>
<p>Yes, that's what I'm thinking. And I think that's an attractive path since we do not know what such a hash file might look like yet.</p>



<a name="218730800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218730800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218730800">(Dec 03 2020 at 17:56)</a>:</h4>
<p>I'll also add that I don't think we _want_ the client to do cache busting, because allowing cache busting on the server opens up more opportunities for abuse. But that's a question for another time.</p>



<a name="218731658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218731658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218731658">(Dec 03 2020 at 18:02)</a>:</h4>
<p>OK I will set that up later today</p>



<a name="218731802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218731802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218731802">(Dec 03 2020 at 18:03)</a>:</h4>
<p>That is the pro! It works now to experiment with. It will be useful for small registries. And the code we are expecting has a path to stabilization.</p>
<p>The con is that there are in effect 3 kinds of indexes.</p>
<ol>
<li>git, as it is stable.</li>
<li><code>sparse+</code> with signing, as it is the path forward for <a href="http://crates.io">crates.io</a>.</li>
<li><code>sparse+</code> without signing, that we are supporting and testing forever, with no one that needs it.</li>
</ol>
<p>Just thinking out loud.</p>



<a name="218731876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218731876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218731876">(Dec 03 2020 at 18:03)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> Great, thank you!</p>



<a name="218732085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218732085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218732085">(Dec 03 2020 at 18:05)</a>:</h4>
<blockquote>
<p>I'll also add that I don't think we _want_ the client to do cache busting</p>
</blockquote>
<p>By cache busting I mean that the hash is in the name, so files can be cashed forever. Not that the client can force a hit on the server. I should probably be more precise in my language.</p>



<a name="218732331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218732331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218732331">(Dec 03 2020 at 18:07)</a>:</h4>
<p><span class="user-mention" data-user-id="120179">@Eh2406</span> I think the signing RFC will also end up modifying the way git registries work, so I would think of it maybe more as adding another dimension to the table of index types. But yes, we'll end up with two variants of each registry index type -- one that uses the hash file and one that does not. That said, _most_ of the implementation will stay the same. I also think there are plenty of users who will use the non-signing registry variants (especially for internal use), so they're probably worth supporting regardless.</p>



<a name="218732455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218732455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218732455">(Dec 03 2020 at 18:08)</a>:</h4>
<p>Ah, that to me is not cache busting. That is content-addressable storage that allows long-term caching. Cache busting is specifically a mechanism whereby a client can bypass the cache for a given file to fetch a newer version. I think it's important to keep those separate.</p>



<a name="218732508"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218732508" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218732508">(Dec 03 2020 at 18:08)</a>:</h4>
<p>good point, I will be more precise in the future.</p>



<a name="218732559"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218732559" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218732559">(Dec 03 2020 at 18:09)</a>:</h4>
<p>My thinking here is that we should cut the changelog from the RFC and my PoC PR, since it adds fairly little, and overlaps too much with a potential signing implementation. I think the RFC without the changelog is still hugely valuable, and is completely compatible with adding a signature file later on.</p>



<a name="218732578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218732578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218732578">(Dec 03 2020 at 18:09)</a>:</h4>
<p>I guess I can write a comment in the RFC thread to that effect.</p>



<a name="218732732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218732732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218732732">(Dec 03 2020 at 18:10)</a>:</h4>
<p>(the reason I'm pushing on dropping the changelog is that I'm hesitant to make more changes to the PR like 426 Too Many Requests support if a bunch of code is going to go away shortly when we remove the changelog)</p>



<a name="218734614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218734614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218734614">(Dec 03 2020 at 18:26)</a>:</h4>
<p>I wrote up my argument for cutting the changelog from the RFC: <a href="https://github.com/rust-lang/rfcs/pull/2789#issuecomment-738194824">https://github.com/rust-lang/rfcs/pull/2789#issuecomment-738194824</a></p>



<a name="218737415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737415">(Dec 03 2020 at 18:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> I'd specifically love your thoughts on <a href="https://github.com/rust-lang/cargo/pull/8890#issuecomment-738181228">https://github.com/rust-lang/cargo/pull/8890#issuecomment-738181228</a>, as I think there are some deeper implications there that I'm missing.</p>



<a name="218737494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737494">(Dec 03 2020 at 18:49)</a>:</h4>
<p>I need to reread this part of cargo heh</p>



<a name="218737667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737667">(Dec 03 2020 at 18:51)</a>:</h4>
<p>Hehe, all good, no rush. I just feel like there's something there that I'm missing, and am worried that using "time of last call to <code>RegistryData::update_index</code>" is going to cause issues in some unpredictable way, otherwise that would just be the default.</p>



<a name="218737687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737687">(Dec 03 2020 at 18:51)</a>:</h4>
<p>wow this is fancier than I remember</p>



<a name="218737701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737701">(Dec 03 2020 at 18:51)</a>:</h4>
<p>but I remember implementing this now</p>



<a name="218737749"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737749" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737749">(Dec 03 2020 at 18:51)</a>:</h4>
<p>but yes you're right in that this forces cargo to reparse all the json all the time</p>



<a name="218737807"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737807" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737807">(Dec 03 2020 at 18:52)</a>:</h4>
<p>which we'll want to fix before landing and/or turning on, but I think is probably irrelevant for your timing tests</p>



<a name="218737841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737841">(Dec 03 2020 at 18:52)</a>:</h4>
<p>it might add a few hundred ms here or there to builds but that's nothing compared to what we're measuring with http fetch times</p>



<a name="218737909"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737909" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737909">(Dec 03 2020 at 18:52)</a>:</h4>
<p>I think what we'll probably want to do is just refactor all this</p>



<a name="218737947"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737947" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737947">(Dec 03 2020 at 18:53)</a>:</h4>
<p>the git implementation of this caching would be very different from the http implementation</p>



<a name="218737964"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737964" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737964">(Dec 03 2020 at 18:53)</a>:</h4>
<p>with http I don't think we'd ever store the raw json bytes we got from the server on disk</p>



<a name="218737978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737978">(Dec 03 2020 at 18:53)</a>:</h4>
<p>we'd just immediately store the optimized lookup version</p>



<a name="218737988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218737988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218737988">(Dec 03 2020 at 18:53)</a>:</h4>
<p>Yeah, that's what I figured. I'm more trying to figure out what I could even set <code>current_version</code> for the sparse HTTP, since there isn't really _one_ version.</p>



<a name="218738009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738009">(Dec 03 2020 at 18:53)</a>:</h4>
<p>Oh yeah, that's a good idea.</p>



<a name="218738085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738085">(Dec 03 2020 at 18:54)</a>:</h4>
<p>yeah I don't think <code>current_version</code> fits well, I think things will need to be refactored for this to fi</p>



<a name="218738087"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738087" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738087">(Dec 03 2020 at 18:54)</a>:</h4>
<p>fit*</p>



<a name="218738110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738110">(Dec 03 2020 at 18:54)</a>:</h4>
<p>Okay, sounds good. In that case I'll leave it as <code>None</code> in the PR for now</p>



<a name="218738132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738132">(Dec 03 2020 at 18:54)</a>:</h4>
<p>and yeah I think it's fine to land without this degree of caching</p>



<a name="218738139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738139">(Dec 03 2020 at 18:54)</a>:</h4>
<p>just not ok to turn on by default without this fixed</p>



<a name="218738140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738140">(Dec 03 2020 at 18:54)</a>:</h4>
<p>I'd like to try to do as many "separate" changes in different PRs as possible</p>



<a name="218738146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738146">(Dec 03 2020 at 18:54)</a>:</h4>
<p>Yup, sounds about right</p>



<a name="218738147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738147">(Dec 03 2020 at 18:54)</a>:</h4>
<p>agreed</p>



<a name="218738194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738194">(Dec 03 2020 at 18:55)</a>:</h4>
<p>FWIW still reading things but I'm pretty sure I agree with removing the changelog</p>



<a name="218738218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738218">(Dec 03 2020 at 18:55)</a>:</h4>
<p>the times seem quite reasonable, the changelog is an obvious "this can be added on"</p>



<a name="218738333"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738333" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738333">(Dec 03 2020 at 18:56)</a>:</h4>
<p>to be clear though I have not read any code in your PR yet</p>



<a name="218738356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738356">(Dec 03 2020 at 18:56)</a>:</h4>
<p>only been opearting at a high level</p>



<a name="218738388"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738388" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738388">(Dec 03 2020 at 18:56)</a>:</h4>
<p>but while I have you here, can you describe at a high level where this fits in with the resolver?</p>



<a name="218738406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738406">(Dec 03 2020 at 18:56)</a>:</h4>
<p>like do we run the resolver, and on error, try to prefetch things?</p>



<a name="218738443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738443">(Dec 03 2020 at 18:56)</a>:</h4>
<p>or how does the back-and-forth between the resolver and "go fetch more" work basically?</p>



<a name="218738462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738462">(Dec 03 2020 at 18:57)</a>:</h4>
<p>(in a meeting, but will respond soon)</p>



<a name="218738527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218738527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218738527">(Dec 03 2020 at 18:57)</a>:</h4>
<p>ah ok no worries</p>



<a name="218739632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218739632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218739632">(Dec 03 2020 at 19:05)</a>:</h4>
<p>To meet the gole. "does not require changes to the resolver for the initial implementation." I think, the greedy prefetch runs before the resolver, and if the resolver asks for something that is not in the prefetch then it is fetched with blocking commands.</p>



<a name="218739854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218739854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218739854">(Dec 03 2020 at 19:06)</a>:</h4>
<p>Obviously titer integration can make things faster and simpler, but that is not for an initial PR.</p>



<a name="218739926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218739926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218739926">(Dec 03 2020 at 19:07)</a>:</h4>
<p>hm ok</p>



<a name="218739969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218739969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218739969">(Dec 03 2020 at 19:07)</a>:</h4>
<p>actually <span class="user-mention" data-user-id="120054">@Jon Gjengset</span> if you're not tired of meetings I'd be up for a sync chat about more of the implementation</p>



<a name="218744573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218744573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218744573">(Dec 03 2020 at 19:44)</a>:</h4>
<p>I have a thing to get done for $dayjob but if the sync chat is happening I would love to listen in.</p>



<a name="218745550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218745550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218745550">(Dec 03 2020 at 19:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span>  <span class="user-mention" data-user-id="120179">@Eh2406</span> is right -- the greedy fetcher runs first, way before the resolver runs. It tries to sort of sweep in all dependencies the resolver _might_ want in a batch fetch. Then, when the resolver runs, all the index files should just immediately be available. If something isn't, it just does a synchronous fetch at that time. Arguably we could even have an assertion in <code>load</code> that every requested index file is already fetched, but I left that off since the greedy resolver _is_ very simple and I don't want to consider it an error if it misses something.</p>



<a name="218745586"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218745586" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218745586">(Dec 03 2020 at 19:53)</a>:</h4>
<p>Happy to do a meeting! Both my today and tomorrow are pretty open.</p>



<a name="218745628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218745628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218745628">(Dec 03 2020 at 19:53)</a>:</h4>
<p>how about... now?</p>



<a name="218746215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218746215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218746215">(Dec 03 2020 at 19:57)</a>:</h4>
<p>Works for me :p</p>



<a name="218746340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218746340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218746340">(Dec 03 2020 at 19:58)</a>:</h4>
<p>the teams chat on <a href="http://meet.jit.si">meet.jit.si</a>?</p>



<a name="218746358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218746358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218746358">(Dec 03 2020 at 19:58)</a>:</h4>
<p>I'll send y'all a zoom link</p>



<a name="218753509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218753509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218753509">(Dec 03 2020 at 20:58)</a>:</h4>
<p>Against <span class="user-mention" data-user-id="116122">@simulacrum</span>'s CloudFront bucket:<br>
<a href="/user_uploads/4715/yu_zslawSzGOoUZJSN4Y6DLa/comp.png">comp.png</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/yu_zslawSzGOoUZJSN4Y6DLa/comp.png" title="comp.png"><img src="/user_uploads/4715/yu_zslawSzGOoUZJSN4Y6DLa/comp.png"></a></div>



<a name="218753528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218753528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218753528">(Dec 03 2020 at 20:58)</a>:</h4>
<p><span class="user-mention" data-user-id="120179">@Eh2406</span> <span class="user-mention" data-user-id="116015">@Alex Crichton</span> ^</p>



<a name="218755678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218755678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218755678">(Dec 03 2020 at 21:16)</a>:</h4>
<p><span class="user-mention" data-user-id="120054">@Jon Gjengset</span> tested with <code>curl</code> at the CLI and looks like github raw supports etag</p>



<a name="218755686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218755686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218755686">(Dec 03 2020 at 21:16)</a>:</h4>
<p>even 304'ing if-none-match</p>



<a name="218763812"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218763812" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218763812">(Dec 03 2020 at 22:27)</a>:</h4>
<p>Nice! I did try running against <code>raw.githubusercontent</code> a while back, but that's where their rate limiting hurt a lot. Since they consider it an "API", they throttle pretty aggressively to the tune of ~20rps, maybe less over time.</p>



<a name="218763943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218763943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218763943">(Dec 03 2020 at 22:28)</a>:</h4>
<p>Also, the diff from removing the changelog stuff is <span aria-label="ok" class="emoji emoji-1f44c" role="img" title="ok">:ok:</span></p>



<a name="218765007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218765007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218765007">(Dec 03 2020 at 22:38)</a>:</h4>
<p>ohh yes <a href="https://github.com/rust-lang/cargo/pull/8890/commits/bda120ad837e6e71edb334a44e64533119402dee">https://github.com/rust-lang/cargo/pull/8890/commits/bda120ad837e6e71edb334a44e64533119402dee</a></p>



<a name="218769111"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218769111" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218769111">(Dec 03 2020 at 23:24)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> I started looking a bit at the <code>Option&lt;Summary&gt;</code> changed we talked about. I think one place it'll get hairy is that a number of methods already use <code>Option</code> to signify if they were _able_ to resolve something. For example, <code>PackageRegistry::query_overrides</code> returning <code>None</code> has a different semantic meaning than "try again later", and may indeed cause errors "upstream". Not insurmountable, but does make the change a bit trickier.</p>



<a name="218769410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218769410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218769410">(Dec 03 2020 at 23:26)</a>:</h4>
<p>ah true yeah, we may need a tri-state enum addition to those location</p>



<a name="218769914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218769914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218769914">(Dec 03 2020 at 23:31)</a>:</h4>
<p><code>enum YesNoMaybe</code></p>



<a name="218774495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218774495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218774495">(Dec 04 2020 at 00:33)</a>:</h4>
<p><span class="user-mention" data-user-id="120179">@Eh2406</span> You mentioned on our call that you'd like to see the RFC land as an eRFC. With the changelog stuff removed, what is the rationale for not landing it as an RFC? I don't necessarily disagree, I'm just trying to figure out what other concerns there are.</p>



<a name="218774703"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218774703" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218774703">(Dec 04 2020 at 00:36)</a>:</h4>
<p><span class="user-mention" data-user-id="121055">@Pietro Albini</span> Don't know if you saw the comment I made to the RFC, but following the benchmark results, I'm now proposing we get rid of the changelog from the RFC. Assuming that happens, I _think_ there's nothing in the RFC that precludes adding a signature scheme later. But maybe it'd be good to schedule a call to chat through it? I think <span class="user-mention" data-user-id="116015">@Alex Crichton</span> wanted that too.</p>



<a name="218774733"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218774733" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218774733">(Dec 04 2020 at 00:37)</a>:</h4>
<p><span class="user-mention" data-user-id="120054">@Jon Gjengset</span> I'd love to have a call</p>



<a name="218774811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218774811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218774811">(Dec 04 2020 at 00:38)</a>:</h4>
<p>but can we talk tomorrow? it's a bit late here :)</p>



<a name="218774820"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218774820" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218774820">(Dec 04 2020 at 00:38)</a>:</h4>
<p>I'm free all day tomorrow as well if you wanna send an invite</p>



<a name="218774865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218774865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218774865">(Dec 04 2020 at 00:39)</a>:</h4>
<p>I would also be comfortabale just landing as an RFC at this point given that it's fleshed out on the impl side enough</p>



<a name="218774894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218774894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218774894">(Dec 04 2020 at 00:39)</a>:</h4>
<p>Oh, sorry, didn't mean _now_ necessarily :p Tomorrow is wide open for me, so whatever time works for the two of you who I think have busier schedules these days is good. We can use the cargo jitsi maybe?</p>



<a name="218774985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218774985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218774985">(Dec 04 2020 at 00:40)</a>:</h4>
<p>Just wanted to clarify that we definitely don't want to land anything depending on the cloudfront bucket I created even unstable, it's super temporary</p>



<a name="218775013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218775013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218775013">(Dec 04 2020 at 00:41)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> Yup, there's nothing referencing that bucket in the PR. I've just been using that for benchmarking on my side.</p>



<a name="218775073"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218775073" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218775073">(Dec 04 2020 at 00:42)</a>:</h4>
<p>The PR just adds the ability to use an HTTP endpoint using <code>sparse+https://</code> URLs, but does not include any such URLs by default.</p>



<a name="218775171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218775171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218775171">(Dec 04 2020 at 00:43)</a>:</h4>
<p>I do think it would be valuable to have a real endpoint that people can try out after my PR lands so that people can test, but that's relatively low priority. To make it low effort, that should probably just be a CloudFront in front of <code>raw.githubusercontent.com</code> with a relatively short cache expiry time, so that we don't have to implement any purging or S3 bucket updating.</p>



<a name="218775620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218775620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218775620">(Dec 04 2020 at 00:50)</a>:</h4>
<p>Speaking of, who would be the best person to talk to on the <a href="http://crates.io">crates.io</a> / infrastructure side to get something like ^ set up? And to talk about possibly adding explicit cache eviction to <a href="http://crates.io">crates.io</a> down the line? I guess maybe that's also you <span class="user-mention" data-user-id="116122">@simulacrum</span>? :p</p>



<a name="218775671"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218775671" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218775671">(Dec 04 2020 at 00:51)</a>:</h4>
<p>Pietro has a "<a href="http://crates.io">crates.io</a>" hat more so than I do, but something like that sounds not entirely unreasonable</p>



<a name="218775695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218775695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218775695">(Dec 04 2020 at 00:52)</a>:</h4>
<p>I'd probably go about it a bit differently -- let me kick off a topic in <a class="stream" data-stream-id="242791" href="/#narrow/stream/242791-t-infra">#t-infra</a> though</p>



<a name="218778725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218778725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218778725">(Dec 04 2020 at 01:46)</a>:</h4>
<p>Re: ERFC, I thought that <a href="https://github.com/rust-lang/rfcs/pull/2789#issuecomment-562341184">https://github.com/rust-lang/rfcs/pull/2789#issuecomment-562341184</a> suggested that we want to merge as an ERFC. But a lot of work has been done since then. And the impl looks good. So yes, let's go straight to RFC.</p>



<a name="218780104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218780104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218780104">(Dec 04 2020 at 02:06)</a>:</h4>
<p>I will message when I start working tomorrow and we can sync up. For pietro it's probably best if we meet early us times bc he's in europe</p>



<a name="218783941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218783941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218783941">(Dec 04 2020 at 02:31)</a>:</h4>
<p>Sounds good. I'll be available starting 9am Pacific time.</p>



<a name="218792219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218792219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218792219">(Dec 04 2020 at 04:04)</a>:</h4>
<p>Ok I will send an invite when I awaken</p>



<a name="218794367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218794367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218794367">(Dec 04 2020 at 04:55)</a>:</h4>
<blockquote>
<p><code>enum YesNoMaybe</code></p>
</blockquote>
<p>I have been thinking about this plan  and have some tweaks to make it smarter. I'm looking forward to digging in after this PR is merged. What properties we can say about a solution where we skipped some things will definitely depend on <em>what</em> we choose to skip. I think the properties are more helpful if we skip dependencies rather than versions. But we will have to see what is implementable.</p>



<a name="218847903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218847903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218847903">(Dec 04 2020 at 15:34)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> <span class="user-mention" data-user-id="120054">@Jon Gjengset</span> can we do it next week? not feeling well enough to do a call right now :(</p>



<a name="218847914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218847914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218847914">(Dec 04 2020 at 15:34)</a>:</h4>
<p>(sorry about the last minute ping)</p>



<a name="218847917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218847917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218847917">(Dec 04 2020 at 15:34)</a>:</h4>
<p>sure!</p>



<a name="218847965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218847965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218847965">(Dec 04 2020 at 15:34)</a>:</h4>
<p>and no worries!</p>



<a name="218848292"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218848292" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218848292">(Dec 04 2020 at 15:37)</a>:</h4>
<p>Feal better!</p>



<a name="218857565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218857565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218857565">(Dec 04 2020 at 16:40)</a>:</h4>
<p>Hope you feel better soon!</p>



<a name="218904071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218904071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218904071">(Dec 04 2020 at 23:25)</a>:</h4>
<p>I went ahead and marked the PR ready for review, since I think the implementation is now where I want it to be.</p>



<a name="218904082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218904082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218904082">(Dec 04 2020 at 23:25)</a>:</h4>
<p>I also submitted some more comments + a suggested edit for the changelog to the RFC PR.</p>



<a name="218920623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/218920623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#218920623">(Dec 05 2020 at 05:58)</a>:</h4>
<p>Ok! I will try to review Monday</p>



<a name="219060854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/219060854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#219060854">(Dec 07 2020 at 10:09)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> <span class="user-mention" data-user-id="120054">@Jon Gjengset</span> could we move the call 1 hour after what's currently in the invite?</p>



<a name="219060878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/219060878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Pietro Albini <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#219060878">(Dec 07 2020 at 10:09)</a>:</h4>
<p>got an urgent core team thing scheduled on top of the slot for today's call :(</p>



<a name="219085578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/219085578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#219085578">(Dec 07 2020 at 14:26)</a>:</h4>
<p>I have moved it, no worries</p>



<a name="219087008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/219087008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#219087008">(Dec 07 2020 at 14:36)</a>:</h4>
<p>If it would be helpful to have me in the call pass along the invite and I'll try to fit it in.</p>



<a name="219096163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/219096163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#219096163">(Dec 07 2020 at 15:47)</a>:</h4>
<p><span class="user-mention" data-user-id="120179">@Eh2406</span> I added you but I think we're mainly gonna talk about the security side of things so don't feel obligated to come</p>



<a name="219099608"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/219099608" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#219099608">(Dec 07 2020 at 16:12)</a>:</h4>
<p>That works for me!</p>



<a name="219148012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/219148012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#219148012">(Dec 07 2020 at 22:31)</a>:</h4>
<p><span class="user-mention silent" data-user-id="120054">Jon Gjengset</span> <a href="#narrow/stream/246057-t-cargo/topic/http.20registry.20RFC/near/218769111">said</a>:</p>
<blockquote>
<p>I started looking a bit at the <code>Option&lt;Summary&gt;</code> changed we talked about. I think one place it'll get hairy is that a number of methods already use <code>Option</code> to signify if they were _able_ to resolve something. For example, <code>PackageRegistry::query_overrides</code> returning <code>None</code> has a different semantic meaning than "try again later", and may indeed cause errors "upstream". Not insurmountable, but does make the change a bit trickier.</p>
</blockquote>
<p>I started to play with this <a href="https://github.com/jonhoo/cargo/compare/http-registry...Eh2406:resolve_repeatedly_until_all_is_loaded">diff</a>, it threads a  <code>is_ready</code> all the way thure, and handles the resolver part. If <code>is_ready</code> returns false, then the dependency is ignored, when the resolver returns  if any dependency was skipped then it is rerun. Thoughts?</p>



<a name="219149141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/219149141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#219149141">(Dec 07 2020 at 22:42)</a>:</h4>
<p>ok I am running out of time for today, <span class="user-mention" data-user-id="120054">@Jon Gjengset</span> I didn't get to review the rest of the PR today, and I'm taking tomorrow off (any ffxiv fans here?), but I will try to review on Wednesday</p>



<a name="219419352"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/219419352" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#219419352">(Dec 10 2020 at 00:32)</a>:</h4>
<p><span class="user-mention" data-user-id="116015">@Alex Crichton</span> Thanks for the thorough review! I think I've addressed all your comments now.</p>



<a name="220052236"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220052236" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220052236">(Dec 15 2020 at 22:29)</a>:</h4>
<p>Working on a version where we have <code>Source::{fuzzy_}query{_vec}</code> return a <code>Poll&lt;_&gt;</code>. Mostly going well, but it does mean that <em>all</em> the code needs to know about the "try again" behavure. The hard pars are <a href="https://github.com/rust-lang/cargo/blob/b49ccadb4a936a4b6764040ea9c87681b7c1a4b3/src/cargo/core/registry.rs#L295"><code>patch</code></a> and <a href="https://github.com/rust-lang/cargo/blob/b49ccadb4a936a4b6764040ea9c87681b7c1a4b3/src/cargo/core/registry.rs#L399"><code>overrides</code></a>, I am not sure what to do in that code. We can make the retry loop in <code>resolve_with_previous</code> instead of in <code>resolver::resolve</code>, but that feels like more set up then I want to run in a loop. I guess we could have 2 retry loops, one for the setup in <code>resolve_with_previous</code> and a second in <code>resolver::resolve</code>. <span class="user-mention" data-user-id="116015">@Alex Crichton</span> did you have something in mind for this?</p>



<a name="220057524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220057524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jon Gjengset <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220057524">(Dec 15 2020 at 23:18)</a>:</h4>
<p>Yeah, that's where I started hitting a wall too with not knowing enough about the internals</p>



<a name="220135430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220135430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220135430">(Dec 16 2020 at 16:12)</a>:</h4>
<p>Hey sorry getting to this now. <span class="user-mention" data-user-id="120179">@Eh2406</span> these are good points, let me investigate</p>



<a name="220135492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220135492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220135492">(Dec 16 2020 at 16:12)</a>:</h4>
<p>I know <code>overrides</code> at least can be ignored, those are only used with path sources which are always ready</p>



<a name="220135615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220135615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220135615">(Dec 16 2020 at 16:13)</a>:</h4>
<p>Let me investigate patches</p>



<a name="220136193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220136193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220136193">(Dec 16 2020 at 16:16)</a>:</h4>
<p>Hm ok yeah so <code>patch</code> is something that needs to be handled</p>



<a name="220136211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220136211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220136211">(Dec 16 2020 at 16:16)</a>:</h4>
<p>but I think it should be relatively easy</p>



<a name="220136312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220136312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220136312">(Dec 16 2020 at 16:16)</a>:</h4>
<p>it should in theory be a small integration where you ask the sources "here's a bunch of dependencies, wait for them all", and then assert the <code>query_vec</code> succeeds</p>



<a name="220136368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220136368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220136368">(Dec 16 2020 at 16:17)</a>:</h4>
<p>Definitely more complicated than what's there today, but shouldn't be too bad I think</p>



<a name="220136409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220136409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220136409">(Dec 16 2020 at 16:17)</a>:</h4>
<p>I wouldn't try to unify with one loop since it'll probably be more pain than it's worth, but if it easily lends itself to such a refactoring seems reasonable to me</p>



<a name="220136490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220136490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220136490">(Dec 16 2020 at 16:18)</a>:</h4>
<p>Ok I will look into it when I am done re-reading the RFC.</p>



<a name="220136815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220136815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220136815">(Dec 16 2020 at 16:20)</a>:</h4>
<p>I also don't mind if having patches leads to more consecutive round trips. We can optimize in follow ups if we care. Or it can be another cawst to not having your patches upstreamed.</p>



<a name="220137873"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220137873" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220137873">(Dec 16 2020 at 16:27)</a>:</h4>
<p>patches definitely don't need to do anything recursive</p>



<a name="220137944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220137944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220137944">(Dec 16 2020 at 16:28)</a>:</h4>
<p>and they in general don't even interact with the registry, afaik you can only patch to a git or a path source</p>



<a name="220137991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220137991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220137991">(Dec 16 2020 at 16:28)</a>:</h4>
<p>and it's just a top-level patch summary we're acquiring, nothing resolved</p>



<a name="220138028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220138028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220138028">(Dec 16 2020 at 16:28)</a>:</h4>
<p>so you may not even need a loop or anything like "work with this set of requests"</p>



<a name="220139657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220139657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220139657">(Dec 16 2020 at 16:40)</a>:</h4>
<p>So if neither <code>overrides</code> nor <code>patch</code> can depend on a http-registry, then for now should we just <code>panic</code> if they hit a <code>Pending</code> and deal with it when we have an example?</p>



<a name="220144360"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220144360" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220144360">(Dec 16 2020 at 17:17)</a>:</h4>
<p><span class="user-mention" data-user-id="120179">@Eh2406</span> it depends, you can definitely panic for overrides since path sources are always ready. For patch though it could at least use git which I think we'll want to refactor to not have an <code>update</code> step</p>



<a name="220144383"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220144383" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220144383">(Dec 16 2020 at 17:17)</a>:</h4>
<p>I think the answer is "no" for panicking with patch though</p>



<a name="220144384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220144384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alex Crichton <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220144384">(Dec 16 2020 at 17:17)</a>:</h4>
<p>imo</p>



<a name="220144552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220144552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220144552">(Dec 16 2020 at 17:18)</a>:</h4>
<p>Ok, that is faire.</p>



<a name="220179913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/246057-t-cargo/topic/http%20registry%20RFC/near/220179913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Eh2406 <a href="https://rust-lang.github.io/zulip_archive/stream/246057-t-cargo/topic/http.20registry.20RFC.html#220179913">(Dec 16 2020 at 22:07)</a>:</h4>
<p>The work so far on my part of the refactor is up: <a href="https://github.com/rust-lang/cargo/pull/8985">https://github.com/rust-lang/cargo/pull/8985</a> feedback especially about the listed questions is appreciated.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>